/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2001 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.lib.ddl; import java.sql.*; import java.util.*; import org.netbeans.lib.ddl.*; /** * Interface for commands. * DatabaseSpecification instances keeps information about used database type (object was * created using factory's method createSpecification()) and used connection info. * It should be used as factory for DDLCommands. * It also converts java classes into native database types and vice versa. * * @author Slavek Psenicka */ public interface DatabaseSpecification { /** Returns database metadata */ public DatabaseMetaData getMetaData() throws SQLException; public String getMetaDataAdaptorClassName(); public void setMetaDataAdaptorClassName(String name); /** Returns used connection */ public DBConnection getConnection(); /** Creates and returns java.sql.Connection object */ public Connection openJDBCConnection() throws DDLException; /** Returns java.sql.Connection, if present and open */ public Connection getJDBCConnection(); /** Returns factory */ public DatabaseSpecificationFactory getSpecificationFactory(); /** Sets factory */ public void setSpecificationFactory(DatabaseSpecificationFactory fac); /** Closes the connection. * If you forget to close the connection, next open should throw * DDLException. This is an internal dummy-trap. */ public void closeJDBCConnection() throws DDLException; /** Returns all database properties. * It contains all command properties. Used to obtain settings independent * on commands. */ public Map getProperties(); /** Returns properties of command. * This description should be used for formatting commands, it contains * available information for DatabaseSpecification. * @param command Name of command. */ public Map getCommandProperties(String command); /** Creates command identified by commandName. Command names will include * create/rename/drop table/view/index/column and comment table/column. It * returns null if command specified by commandName was not found. Used * system allows developers to extend db-specification files and simply * address new commands (everybody can implement createXXXCommand()). * @param command Name of command. */ public DDLCommand createCommand(String commandName) throws CommandNotSupportedException; /** Returns DBType where maps specified java type. */ public String getType(int sqltype); } /* * <<Log>> * 3 Gandalf 1.2 10/22/99 Ian Formanek NO SEMANTIC CHANGE - Sun * Microsystems Copyright in File Comment * 2 Gandalf 1.1 9/13/99 Slavek Psenicka * 1 Gandalf 1.0 9/10/99 Slavek Psenicka * $ */